package com.cn.sx;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;

public class test {
	public static void main(String[] args){
//		test("C:\\aaa.csv");
//		String a="DSBC_CASE-INCARD_10A82G1G1_20110809.txt";
//		System.out.println(a.indexOf("INCUSTOM"));
//		String a="string-60";
//		System.out.println(a.indexOf("-"));
		String a="松aa啊";
		try {
			String b=bSubstring(a,6);
			
			System.out.println(b);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static String bSubstring(String s, int length) throws Exception{
		
		byte[] bytes = s.getBytes("Unicode");
		System.out.println(bytes.length);
        int n = 0; // 表示当前的字节数
        int i = 2; // 要截取的字节数，从第3个字节开始
        for (; i < bytes.length && n < length; i++)
        {
            // 奇数位置，如3、5、7等，为UCS2编码中两个字节的第二个字节
            if (i % 2 == 1)
            {
                n++; // 在UCS2第二个字节时n加1
            }
            else
            {
                // 当UCS2编码的第一个字节不等于0时，该UCS2字符为汉字，一个汉字算两个字节
                if (bytes[i] != 0)
                {
                    n++;
                }
            }
        }
        // 如果i为奇数时，处理成偶数
        if (i % 2 == 1)

        {
            // 该UCS2字符是汉字时，去掉这个截一半的汉字
            if (bytes[i - 1] != 0)
                i = i - 1;
            // 该UCS2字符是字母或数字，则保留该字符
            else
                i = i + 1;
        }

        return new String(bytes, 0, i, "Unicode");
	}
	public static void test(String a){
		File file = new File(a);
		FileInputStream inputStream = null;
		try {
			inputStream = new FileInputStream(file);
		} catch (Exception e) {
			e.printStackTrace();
		}
		InputStreamReader reader = new InputStreamReader(inputStream);
        try {
			readLines(reader);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void readLines(Reader input) throws IOException {
        BufferedReader reader = new BufferedReader(input);
        int rows = 0;
        List<String> cols = new ArrayList<String>();
        for(String line = reader.readLine(); line != null; line = reader.readLine()) {
        	String[] fields = line.split(",");
			cols.add(rows, line);
			rows ++;
	}
       for(int i=0;i<cols.size();i++){
    	   String a=cols.get(i);
    	   System.out.println(i+":"+a);
       }
}
}
